﻿Imports BE.BE
Imports BL.BL


Public Class frmPrincipal

#Region "Atributos"

    Dim tmov As New tipoMovimiento_BE
    Public usr As New Usuario_BE
    Public integridad As Boolean

#End Region


#Region "Métodos"

    'load.
    Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '*** cosmetica ***.
       
        'Çlientes.
        Me.ClientesMenu.Text = cargarIdiomaControlesMDI("ClientesMenu", usr.ididioma, "frmPrincipal")
        Me.GestionarClientes.Text = cargarIdiomaControlesMDI("GestionarClientes", usr.ididioma, "frmPrincipal")
        Me.ListarClientes.Text = cargarIdiomaControlesMDI("ListarClientes", usr.ididioma, "frmPrincipal")

        'Abogados.
        Me.AbogadosMenu.Text = cargarIdiomaControlesMDI("AbogadosMenu", usr.ididioma, "frmPrincipal")
        Me.GestionarAbogadosEstudio.Text = cargarIdiomaControlesMDI("GestionarAbogadosEstudio", usr.ididioma, "frmPrincipal")
        Me.ListarAbogadosEstudio.Text = cargarIdiomaControlesMDI("ListarAbogadosEstudio", usr.ididioma, "frmPrincipal")
        Me.GestionarAbogadosAseguradora.Text = cargarIdiomaControlesMDI("GestionarAbogadosAseguradora", usr.ididioma, "frmPrincipal")
        Me.ListarAbogadosAseguradora.Text = cargarIdiomaControlesMDI("ListarAbogadosAseguradora", usr.ididioma, "frmPrincipal")

        'Aseguradoras.
        Me.AseguradorasMenu.Text = cargarIdiomaControlesMDI("AseguradorasMenu", usr.ididioma, "frmPrincipal")
        Me.GestionarAseguradoras.Text = cargarIdiomaControlesMDI("GestionarAseguradoras", usr.ididioma, "frmPrincipal")
        Me.ListarAseguradoras.Text = cargarIdiomaControlesMDI("ListarAseguradoras", usr.ididioma, "frmPrincipal")
        Me.GestionarPolizas.Text = cargarIdiomaControlesMDI("GestionarPolizas", usr.ididioma, "frmPrincipal")

        'Contrapartes.
        Me.ContrapartesMenu.Text = cargarIdiomaControlesMDI("ContrapartesMenu", usr.ididioma, "frmPrincipal")
        Me.GestionarContrapartes.Text = cargarIdiomaControlesMDI("GestionarContrapartes", usr.ididioma, "frmPrincipal")
        Me.ListarContrapartes.Text = cargarIdiomaControlesMDI("ListarContrapartes", usr.ididioma, "frmPrincipal")

        'Expedientes.
        Me.ExpedientesMenu.Text = cargarIdiomaControlesMDI("ExpedientesMenu", usr.ididioma, "frmPrincipal")
        Me.GestionarExpedientes.Text = cargarIdiomaControlesMDI("GestionarExpedientes", usr.ididioma, "frmPrincipal")

        'Rubros.
        Me.RubrosMenu.Text = cargarIdiomaControlesMDI("RubrosMenu", usr.ididioma, "frmPrincipal")
        Me.GestionarRubros.Text = cargarIdiomaControlesMDI("GestionarRubros", usr.ididioma, "frmPrincipal")

        'Liquidación.
        Me.LiquidacionMenu.Text = cargarIdiomaControlesMDI("LiquidacionMenu", usr.ididioma, "frmPrincipal")
        Me.SueldoAbogados.Text = cargarIdiomaControlesMDI("SueldoAbogados", usr.ididioma, "frmPrincipal")

        'Facturación.
        Me.FacturacionMenu.Text = cargarIdiomaControlesMDI("FacturacionMenu", usr.ididioma, "frmPrincipal")
        Me.GestionFacturacionClientes.Text = cargarIdiomaControlesMDI("GestionFacturacionClientes", usr.ididioma, "frmPrincipal")

        'Herramientas.
        Me.HerramientasMenu.Text = cargarIdiomaControlesMDI("HerramientasMenu", usr.ididioma, "frmPrincipal")
        Me.Backup.Text = cargarIdiomaControlesMDI("Backup", usr.ididioma, "frmPrincipal")
        Me.Restore.Text = cargarIdiomaControlesMDI("Restore", usr.ididioma, "frmPrincipal")
        Me.GestionDeUsuarios.Text = cargarIdiomaControlesMDI("GestionDeUsuarios", usr.ididioma, "frmPrincipal")
        Me.GestionDeFamilias.Text = cargarIdiomaControlesMDI("GestionDeFamilias", usr.ididioma, "frmPrincipal")
        Me.CambiarClave.Text = cargarIdiomaControlesMDI("CambiarClave", usr.ididioma, "frmPrincipal")
        Me.CambiarIdioma.Text = cargarIdiomaControlesMDI("CambiarIdioma", usr.ididioma, "frmPrincipal")
        Me.Bitacora.Text = cargarIdiomaControlesMDI("Bitacora", usr.ididioma, "frmPrincipal")
        Me.ChequeoRecalculoDV.Text = cargarIdiomaControlesMDI("ChequeoIntegridadDV", usr.ididioma, "frmPrincipal")

        'Ayuda.
        Me.AyudaMenu.Text = cargarIdiomaControlesMDI("AyudaMenu", usr.ididioma, "frmPrincipal")

        'Salir.
        Me.SalirMenu.Text = cargarIdiomaControlesMDI("SalirMenu", usr.ididioma, "frmPrincipal")
        Me.Salir.Text = cargarIdiomaControlesMDI("Salir", usr.ididioma, "frmPrincipal")
        Me.CerrarSesion.Text = cargarIdiomaControlesMDI("CerrarSesion", usr.ididioma, "frmPrincipal")

        'TOOLTIPS.
        Me.MenuStrip1.ShowItemToolTips = True
        'Clientes.
        ClientesMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("ClientesMenu", usr.ididioma, "frmPrincipal")
        GestionarClientes.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarClientes", usr.ididioma, "frmPrincipal")
        ListarClientes.ToolTipText = cargarIdiomaControlesMDIToolTips("ListarClientes", usr.ididioma, "frmPrincipal")
        'Abogados.
        AbogadosMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("AbogadosMenu", usr.ididioma, "frmPrincipal")
        GestionarAbogadosEstudio.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarAbogadosEstudio", usr.ididioma, "frmPrincipal")
        ListarAbogadosEstudio.ToolTipText = cargarIdiomaControlesMDIToolTips("ListarAbogadosEstudio", usr.ididioma, "frmPrincipal")
        GestionarAbogadosAseguradora.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarAbogadosAseguradora", usr.ididioma, "frmPrincipal")
        ListarAbogadosAseguradora.ToolTipText = cargarIdiomaControlesMDIToolTips("ListarAbogadosAseguradora", usr.ididioma, "frmPrincipal")
        'Aseguradoras.
        AseguradorasMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("AseguradorasMenu", usr.ididioma, "frmPrincipal")
        GestionarAseguradoras.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarAseguradoras", usr.ididioma, "frmPrincipal")
        ListarAseguradoras.ToolTipText = cargarIdiomaControlesMDIToolTips("ListarAseguradoras", usr.ididioma, "frmPrincipal")
        GestionarPolizas.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarPolizas", usr.ididioma, "frmPrincipal")
        'Contrapartes.
        ContrapartesMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("ContrapartesMenu", usr.ididioma, "frmPrincipal")
        GestionarContrapartes.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarContrapartes", usr.ididioma, "frmPrincipal")
        ListarContrapartes.ToolTipText = cargarIdiomaControlesMDIToolTips("ListarContrapartes", usr.ididioma, "frmPrincipal")
        'Expedientes.
        ExpedientesMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("ExpedientesMenu", usr.ididioma, "frmPrincipal")
        GestionarExpedientes.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarExpedientes", usr.ididioma, "frmPrincipal")
        'Rubros.
        RubrosMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("RubrosMenu", usr.ididioma, "frmPrincipal")
        GestionarRubros.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionarRubros", usr.ididioma, "frmPrincipal")
        'Liquidacion.
        LiquidacionMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("LiquidacionMenu", usr.ididioma, "frmPrincipal")
        SueldoAbogados.ToolTipText = cargarIdiomaControlesMDIToolTips("SueldoAbogados", usr.ididioma, "frmPrincipal")
        'Facturacion.
        FacturacionMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("FacturacionMenu", usr.ididioma, "frmPrincipal")
        GestionFacturacionClientes.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionFacturacionClientes", usr.ididioma, "frmPrincipal")
        'Herramientas.
        HerramientasMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("HerramientasMenu", usr.ididioma, "frmPrincipal")
        Backup.ToolTipText = cargarIdiomaControlesMDIToolTips("Backup", usr.ididioma, "frmPrincipal")
        Restore.ToolTipText = cargarIdiomaControlesMDIToolTips("Restore", usr.ididioma, "frmPrincipal")
        GestionDeUsuarios.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionDeUsuarios", usr.ididioma, "frmPrincipal")
        GestionDeFamilias.ToolTipText = cargarIdiomaControlesMDIToolTips("GestionDeFamilias", usr.ididioma, "frmPrincipal")
        CambiarClave.ToolTipText = cargarIdiomaControlesMDIToolTips("CambiarClave", usr.ididioma, "frmPrincipal")
        CambiarIdioma.ToolTipText = cargarIdiomaControlesMDIToolTips("CambiarIdioma", usr.ididioma, "frmPrincipal")
        Bitacora.ToolTipText = cargarIdiomaControlesMDIToolTips("Bitacora", usr.ididioma, "frmPrincipal")
        ChequeoRecalculoDV.ToolTipText = cargarIdiomaControlesMDIToolTips("ChequeoIntegridadDV", usr.ididioma, "frmPrincipal")
        'Ayuda.
        AyudaMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("AyudaMenu", usr.ididioma, "frmPrincipal")
        'Salir.
        SalirMenu.ToolTipText = cargarIdiomaControlesMDIToolTips("SalirMenu", usr.ididioma, "frmPrincipal")
        Salir.ToolTipText = cargarIdiomaControlesMDIToolTips("Salir", usr.ididioma, "frmPrincipal")
        CerrarSesion.ToolTipText = cargarIdiomaControlesMDIToolTips("CerrarSesion", usr.ididioma, "frmPrincipal")

        'según el usr logueado, obtenemos ahora familias y patentes disponibles para todos los demás forms.
        'las patentes se aplicaran sobre los demás frms.

        'obtenemos todas las familias asociadas al usuario
        Me.usr.Familias = Familia_BL.listarFamiliasPorUsuario(usr.id)

        'UNION: patentes heredadas por familia y patentes otorgadas.
        'CASO COINCIDEN PATENTES: desempatan prevaleciendo el tipo de la patente otorgada sobre la patente heredadas por familia.
        'CASO NO EXISTIA LA PATENTE OTORGADA: se agrega a la lista de patentes del usr (disponibles)
        Me.usr.Patentes = Patente_BL.listaPatentesFinalPorUsuario(usr)

    End Sub


    'clientes.
    Private Sub GestionarClientes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarClientes.Click
        frmGestionClientes.MdiParent = Me
        frmGestionClientes.Show()
    End Sub

    Private Sub ListarClientes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListarClientes.Click
        frmListarClientes.MdiParent = Me
        frmListarClientes.Show()
    End Sub


    'abogados.
    ''Private Sub GestionarAbogadosEstudio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarAbogadosEstudio.Click
    '    frmGestionAbogadosEstudio.MdiParent = Me
    '    frmGestionAbogadosEstudio.Show()
    'End Sub

    Private Sub ListarAbogadosEstudio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListarAbogadosEstudio.Click
        frmListarAbogadosEstudio.MdiParent = Me
        frmListarAbogadosEstudio.Show()
    End Sub

    Private Sub GestionarAbogadosAseguradora_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarAbogadosAseguradora.Click
        frmGestionAbogadosAseguradora.MdiParent = Me
        frmGestionAbogadosAseguradora.Show()
    End Sub

    Private Sub ListarAbogadosAseguradora_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListarAbogadosAseguradora.Click
        frmListarAbogadosAseguradora.MdiParent = Me
        frmListarAbogadosAseguradora.Show()
    End Sub


    'aseguradoras.
    Private Sub GestionarAseguradoras_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarAseguradoras.Click
        frmGestionarAseguradoras.MdiParent = Me
        frmGestionarAseguradoras.Show()
    End Sub

    Private Sub ListarAseguradoras_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListarAseguradoras.Click
        frmListarAseguradoras.MdiParent = Me
        frmListarAseguradoras.Show()
    End Sub


    'contrapartes.
    Private Sub GestionarContrapartes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarContrapartes.Click
        frmGestionContrapartes.MdiParent = Me
        frmGestionContrapartes.Show()
    End Sub

    Private Sub ListarContrapartes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListarContrapartes.Click
        frmListarContrapartes.MdiParent = Me
        frmListarContrapartes.Show()
    End Sub


    'polizas.
    Private Sub GestionarPolizas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarPolizas.Click
        frmGestionarPolizas.MdiParent = Me
        frmGestionarPolizas.Show()
    End Sub


    'expedientes.
    Private Sub GestionarExpedientes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarExpedientes.Click
        frmGestionarExpedientes.MdiParent = Me
        frmGestionarExpedientes.Show()
    End Sub


    'rubros.
    Private Sub GestionarRubros_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionarRubros.Click
        frmGestionarRubros.MdiParent = Me
        frmGestionarRubros.Show()
    End Sub


    'liquidación.
    Private Sub SueldoAbogados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SueldoAbogados.Click
        frmSueldoAbogados.MdiParent = Me
        frmSueldoAbogados.Show()
    End Sub


    'facturación.
    Private Sub GestiónFacturaciónClientes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionFacturacionClientes.Click
        frmFacturacionClientes.MdiParent = Me
        frmFacturacionClientes.Show()
    End Sub


    'salir.
    Private Sub Salir_Click(sender As Object, e As EventArgs) Handles Salir.Click
        If MsgBox("Usted cerrará el sistema, esta seguró..?", MsgBoxStyle.OkCancel, "Salir") = MsgBoxResult.Ok Then
            'salió -> grabar en bitacora.
            tmov.mDescripcion = "Usuario salió del Sistema.."
            tmov.mCriticidad = 2
            Bitacora_BL.grabarEnBitacora(Me.usr, tmov)
            Me.Close()
            Me.Dispose()
        End If
    End Sub


    'cerrar sesión, 
    Private Sub CerrarSesionYCambiarDEUsuarioToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CerrarSesion.Click
        If MsgBox("Usted cerrará sesión del sistema, esta seguró..?", MsgBoxStyle.OkCancel, "Cerrar Sesión") = MsgBoxResult.Ok Then
            'grabar en bitacora.
            tmov.mDescripcion = "Usuario cerró sesión del Sistema.."
            tmov.mCriticidad = 2
            Bitacora_BL.grabarEnBitacora(Me.usr, tmov)
            frmlogin.txtNick.Text = ""
            frmlogin.txtPassword.Text = ""
            frmlogin.Show()
            frmlogin.txtNick.Focus()
            Me.Close()
            Me.Dispose()
        End If
    End Sub


#End Region


#Region "Métodos Auxiliares"

#Region "Multi idioma"


    Private Function cargarIdiomaControlesMDI(ByVal ctrlName As String, ByVal pidIdioma As Integer, ByVal pnombreFrm As String) As String
        Return Label_BL.traerDescripcion(ctrlName, pidIdioma, pnombreFrm)
    End Function


    Private Function cargarIdiomaControlesMDIToolTips(ByVal ctrlName As String, ByVal pidIdioma As Integer, ByVal pnombreFrm As String) As String
        Return Label_BL.traerDescripcionToolTip(ctrlName, pidIdioma, pnombreFrm)
    End Function


    Private Sub cargarIdiomaControles(ByVal controles As ICollection, ByVal pidIdioma As Integer)
        For Each ctrl As Control In controles
            'filtramos los ctrls que usamos en el frm.
            If TypeOf ctrl Is RadioButton Or TypeOf ctrl Is Label Or TypeOf ctrl Is Button Or TypeOf ctrl Is GroupBox Or TypeOf ctrl Is ToolStrip Then
                ctrl.Text = Label_BL.traerDescripcion(ctrl.Name, pidIdioma, Me.Name.ToString)
            End If
            If ctrl.HasChildren Then
                cargarIdiomaControles(ctrl.Controls, pidIdioma)
            End If
        Next
    End Sub


    Private Sub AyudaMenu_Click(sender As Object, e As EventArgs) Handles AyudaMenu.Click
        Help.ShowHelp(Me, Application.StartupPath & "\ayuda_SEAS.chm", "ayuda.htm")
    End Sub



#End Region


#End Region


#Region "Seguridad"

    'backup.
    Private Sub Backup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Backup.Click
        frmCopiaSeguridad.MdiParent = Me
        frmCopiaSeguridad.Show()
    End Sub


    'restore.
    Private Sub Restore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Restore.Click
        frmRestaurarCopiaSeguridad.MdiParent = Me
        frmRestaurarCopiaSeguridad.Show()
    End Sub


    'gestón de usuarios.
    Private Sub GestiónDeUsuarios_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionDeUsuarios.Click
        frmGestionUsuarios.MdiParent = Me
        frmGestionUsuarios.Show()
    End Sub


    'gestión de familias.
    Private Sub GestionDeFamilias_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GestionDeFamilias.Click
        frmGestionFamilias.MdiParent = Me
        frmGestionFamilias.Show()
    End Sub


    'cambiar idioma.
    Private Sub CambiarIdioma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CambiarIdioma.Click
        frmCambiarIdioma.MdiParent = Me
        frmCambiarIdioma.Show()
    End Sub


    'cambiar clave.
    Private Sub CambiarClave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CambiarClave.Click
        frmCambiarClave.MdiParent = Me
        frmCambiarClave.Show()
    End Sub


    'bitacora.
    Private Sub Bitácora_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bitacora.Click
        frmBitacora.MdiParent = Me
        frmBitacora.Show()
    End Sub


    'chequeo y reélculo de dvvs.
    Private Sub ChequeoRecalculoDV_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChequeoRecalculoDV.Click
        frmChequeoRecalculoDV.MdiParent = Me
        frmChequeoRecalculoDV.Show()
    End Sub


#End Region




End Class

